#include "../import/head.h"
#include "helper_udp.h"
#include "../data_struct/head.h"
#include "../global/head.h"
#include "../macro/head.h"
#include "../msg/head.h"
#include "../helper_net/head.h"

////////////////////////////////////////////////////////////////////////////////////////////
// 

namespace xos_sgsj
{

    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 

    helper_udp::helper_udp()
    {
    }

    helper_udp::~helper_udp()
    {
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // proc

    int helper_udp::proc( data * pData )
    {
        int ret = 0;

        int nMsg = pData->m_nMsg;

        switch( nMsg )
		{
		case MSG_UDP_NEED_CLOSE:
			{
			}
			break;
        case MSG_UDP_INIT:
            {
            }
            break;
        case MSG_UDP_RECV:
            {
            }
            break;
        case MSG_UDP_SEND:
            {
            }
            break;
        case MSG_UDP_CLOSE:
            {
				ret = on_close( pData );
            }
            break;
        default:
            {
                ret = 1;
            }
            break;
        }

        return ret;
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 

	int helper_udp::on_close( data * pData )
	{
		int ret = 0;

		udp * pUdp = pData->m_pUdp;
		session * pSession = pUdp->m_pSession;

		pSession->release();
		pSession = 0;
		pUdp->release();
		pUdp = 0;

		return ret;
	}

} // xos_sgsj
